/*
 * archivo.h
 *
 *  Created on: 11 Apr 2010
 *      Author: osky
 */

#ifndef ARCHIVO_H_
#define ARCHIVO_H_
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <stdio.h>

using namespace std;
class Archivo {

private:
	static Archivo* _instance;
	static unsigned int bucket;
	static char* name;
	FILE *arch;
	Archivo(char* name, const char* modo);
	void inicializarCadenas(char* cadenaVacia, int size);

	static const int primerBloque = sizeof(char) * 1000;
	static const int cantidadBloques = 1000;
public:

	static Archivo* getInstance(const char* modo=NULL);
	static void setBucket(int tamanioBucket);
	static void setNombre(const char* nombre);
	static void deleteInstance();
	int getBloqueLibre();
	void borrarBloque(int numeroBloque);
	void write(stringstream *bloque, int numeroBloque);
	stringstream* read(int numeroBloque);
	virtual ~Archivo();

};

#endif /* ARCHIVO_H_ */

